package vip.xiaonuo.hontu.issued.request;

import com.alibaba.fastjson.annotation.JSONField;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

@NoArgsConstructor
@Data
@Accessors(chain = true)
public class BatchAddPersonRequest {


    /**
     * personList
     */
    @JSONField(name = "personList")
    private List<PersonListDTO> personList = new ArrayList<>();

    /**
     * PersonListDTO
     */
    @NoArgsConstructor
    @Data
    @Accessors(chain = true)
    public static class PersonListDTO {

        /**
         * 用户名称
         */
        @JSONField(name = "name")
        private String name;
        /**
         * 人员类型
         */
        @JSONField(name = "type")
        private Integer type;

        /**
         * 组织uuid
         */
        @JSONField(name = "orgUuid")
        private String orgUuid;

        /**
         * 人员唯一标识
         */
        @JSONField(name = "uuid")
        private String uuid;


        /**
         * 用户识别照片的uri
         */
        @JSONField(name = "imageUri")
        private String imageUri;


        /**
         * 性别
         */
        @JSONField(name = "sex")
        private Integer sex;

        /**
         * 员工编码,员工可填,若填写需保证唯一, 格式: 允许大小写英文字母,数字, 长度:[1,32]
         */
        @JSONField(name = "code")
        private String code;
        /**
         * 身份证号（加密传输，加解密方案请查看帮助文档）明文格式:允许大小写英文字母,数字,长度:[1,32]
         */
        @JSONField(name = "identifyNum")
        private String identifyNum;

        @JSONField(name = "email")
        private String email;

        /**
         * 手机号（加密传输，加解密方案请查看帮助文档）
         */
        @JSONField(name = "phone")
        private String phone;
        /**
         * cardNum
         */
        @JSONField(name = "cardNum")
        private String cardNum;
        /**
         * password
         */
        @JSONField(name = "password")
        private String password;
        /**
         * entryTimeStamp
         */
        @JSONField(name = "entryTimeStamp")
        private Long entryTimeStamp;
        /**
         * postion
         */
        @JSONField(name = "postion")
        private String postion;
        /**
         * birthdayStamp
         */
        @JSONField(name = "birthdayStamp")
        private Long birthdayStamp;
        /**
         * uniqueIdentify
         */
        @JSONField(name = "uniqueIdentify")
        private String uniqueIdentify;
        /**
         * ext
         */
        @JSONField(name = "ext")
        private String ext;

        /**
         * groupList
         */
        @JSONField(name = "groupList")
        private List<String> groupList;
    }
}
